$(function() {
	var tmp_city_name = "";
	var tmp_city_id = 0;
	
	var wb = new WaitBox("#waitBox");
	var ep = new EventProcessor(wb);
	// ep.hide_actions = false;
	ep.attach_handlers();
	
	// Запрос событий "РАНЬШЕ"
    $("#linkShowPrev").click(function(e) {
        // сначала формируем XML пакет запроса новой порции событий
		var pack = new RequestFactory();
		pack.CreateRequest("event", "sel", page_type, "event-line")
			.CreateSection("option", "beg", prev_beg)
			.CreateSection("option", "dir", "0");
		
		wb.show(e.pageX, e.pageY);
		
        var res = $.ajax({
            type: "POST",
            url: root_url+ "/aj.php",
            async: true,
            data: { xml: pack.toString() },
            dataType: "xml",

			error: function(XMLHttpRequest, textStatus, errorThrown){
				wb.hide();
				alert(var_dump(XMLHttpRequest));
			},
            // и после успешного приема - вставляем полученный html
			success: function(xml){
				wb.hide();
				var html = $("html", xml).text();
				html = htmlspecialchars_decode(html, 0);
				if(is_html_empty(html))
					$("#linkShowPrev").remove();
				else
					prev_beg += row_num;
				
				$(html).insertAfter("#labelFirst");
				
				ep.attach_handlers();
				initPopupUserMenu();
			}
		});
		
		return false;
    });

	// Запрос событий "ПОЗЖЕ"
    $("#linkShowNext").click(function(e) {
        // сначала формируем XML пакет запроса новой порции событий
		var pack = new RequestFactory();
		pack.CreateRequest("event", "sel", page_type, "event-line")
			.CreateSection("option", "beg", next_beg)
			.CreateSection("option", "dir", "1");
		
		wb.show(e.pageX, e.pageY);
		
        // потом передаем его на сервер
        var res = $.ajax({
            type: "POST",
            url: root_url+ "/aj.php",
            async: true,
            data: { xml: pack.toString() },
            dataType: "xml",

			error: function(XMLHttpRequest, textStatus, errorThrown){
				wb.hide();
				alert(var_dump(XMLHttpRequest));
			},
            // и после успешного приема - вставляем полученный html
			success: function(xml){
				wb.hide();

				var html = $("html", xml).text();
				html = htmlspecialchars_decode(html, 0);
				if(is_html_empty(html))
					$("#linkShowNext").remove();
				else
					next_beg += row_num;
					
				$(html).insertBefore("#labelLast");
				
				ep.attach_handlers();
				initPopupUserMenu();
			}
		});
		
        return false;
    });
	
	$("#changeCityLink").bind("click", function(){
		var w = ($(window).width() - 300) / 2;
		$("#cityPanel").css("left", w+"px" ).show();
		return false;
	});

	if($("#fld_city").length > 0)
	{
		$("#fld_city").autocomplete({
			minLength: 2,
			delay: 500,
			
			//define callback to format results
			source: function(req, add){
			
				// var txt = JSON.stringify(req);
				// alert(txt);
				
				// pack = '<pack><request city="'+ req.term +'"/></pack>';
				
				var pack = new RequestFactory();
				pack.CreateRequest("city", "sel", page_type, "city-list")
					.CreateSection("cond", "name", req.term);
				
				tmp_city_id = 0;
				
				//pass request to server
				var res = $.ajax({
					url: root_url+ "/aj.php",
					async: true,
					type: "POST",
					data: { xml: pack.toString() },
					dataType: "xml",
					success: function(xml, status, obj) {
						var data = $( "city", xml ).map(function() {
							return {
								value: this.getAttribute("name"), 
								region:	this.getAttribute("region"),
								population: this.getAttribute("population"),
								id: this.getAttribute("id")
							};
						}).get();
						add(data);
					}
				});
			},
			select: function(e, ui) {
				tmp_city_id = ui.item.id;
				tmp_city_name = ui.item.value;
				$("#btn_city").focus();
				// $("#h_city_id").val(ui.item.id);
					// "Selected: " + ui.item.value + ", ID: " + ui.item.id :
					// "Nothing selected, input was " + this.value );
			}
			
		})
		.data( "autocomplete" )._renderItem = function( ul, item ) {
			var popul = item.population == '0' ? '-' : item.population + " 000 чел."
			return $( "<li></li>" )
				.data( "item.autocomplete", item )
				.append(
					"<a>" + item.value +
					"<br/>" + item.region +
					"["+ popul +"]"  + "</a>" )
				.appendTo( ul );
		}
	}
	
	$("#btn_city").bind("click", function(){
		var url = root_url +"/"+ actor_id +"/plans/all/"+ tmp_city_id;
		location.assign(url);
	});
	
	$("#linkCityClose").click(function(){
		$("#cityPanel").hide();
	});
	
	$("#date_picker").datepicker({
		inline: true,
		showButtonPanel: true,
		changeYear: false,
		dateFormat: 'yy-mm-dd',
		defaultDate: new Date(date_cmp2uni(sel_dt_cmp)),
		onSelect: function(dateText, inst){
			var uid = (user_id == null) ? 0 : user_id; 
			var url = root_url +"/"+ uid +"/plans/"+ page_categ +"/"+ dateText + "/" + city_id;
			location.assign(url);
		}
	});
	
	// т.к. форма при показах переносится в разные места,
	// то она сбрасывает обработчики событий,
	// поэтому снова назначаем их после показа формы
	ep.addListener("beforeEdit", function(e){
		// alert("event before edit");
		var dateProp = $("#dateProp");
		// alert(dateProp.val().length);
		if(dateProp.val().length == 0)
			dateProp.val(date_cmp2rus(sel_dt_cmp));
		
		dateProp.datepicker({
			inline: false,
			showButtonPanel: true,
			changeYear: false,
			dateFormat: 'dd.mm.yy',
			onSelect: function(dateText, inst){
				// var url = root_url +"/"+ actor_id +"/plans/"+ page_categ +"/"+ dateText;
				// location.assign(url);
			}
		});
	});
	

	
});

function is_html_empty(html)
{
	var s = html.replace(/&#13;/g, '');
	s = jQuery.trim(s);
	// alert("html: "+ html + "\ns: "+ s);
	if(s.length == 0)
		return true;
	else
		return false;
}
